#include "radius.h"
#include <DDBusSender>
#include <QDBusPendingReply>
#include <QtDebug>

DCORE_USE_NAMESPACE

Radius::Radius(QObject *parent) : QObject(parent)
{

}

//从系统获得系统的Radius
int Radius::radius() const
{

    /**
    //这里get()返回的类型是QDBusPendingCall，要用QDBusPendingReply进行处理
    QDBusPendingReply<int> reply  = dbusOfRadius().get();
    //要等它运行完先！！！！最好是加上waitForFinished()
//    reply.waitForFinished();
    if (reply.isError())
        return -1;
    else
        return reply.value();
        **/

    //解决返回数据为0的BUG
    QDBusPendingReply<QVariant> reply(dbusOfRadius().get());
     reply.waitForFinished();
    qDebug() << "文件IS:" << reply.value().toInt();
    return  reply.value().toInt();
}

//设置系统的Radius
void Radius::setRadius(int radius)
{
    dbusOfRadius().set<int>(radius);
}

DDBusProperty Radius::dbusOfRadius() const
{
    //连接到系统的Radius

    //DDBusSender是DTK(dtkcore)自带的连接Dbus的类，可方便了！！！
    //Dbus的method和property都是已经集成了的，可以直接使用，非常好用！
    return  DDBusSender()
            .service("com.deepin.daemon.Appearance")
            .path("/com/deepin/daemon/Appearance")
            .interface("com.deepin.daemon.Appearance")
            .property("WindowRadius");
}
